The amount of time it takes to print from an application to a printer (printing time) can have a direct effect on the user's productivity. As a result, there is a strong interest in developing techniques to improve printer performance by reducing bottlenecks effecting print time. In addition there is a strong interest in developing techniques to reduce required memory resources of a printer as this reduces the overall cost of a printer.
Most printers receive print data from a host computer in the form of a printer control language data stream (data stream) over a standard interface between host and printer. The data stream includes print function commands with interspersed print data. One potential bottleneck that may effect printing time is transmission time of the data stream from host computer to printer. Transmission time generally increases as the amount of print data and printer resolution increases. Transmitting common page print data only once to the printer may reduce print job transmission time by reducing the amount of print data that is required to be transmitted. The common page print data can then be stored in printer memory and thereafter only unique page print data need be transmitted to the printer.
Common page print data are representative of common page aspects between pages that are to be printed. FIG. 1 illustrates the meaning of the terms "common page aspects" and "unique page aspects". In FIG. 1 a page set 2 from a presentation application is shown. The page set 2 has a common page background 4. In addition, each page within the page set 2 has unique page information as depicted by pages 6, 8, 10. The common page background 4 is an example of the common page aspects from page set 2 and the text shown on pages 6, 8, 10 are examples of unique page aspects from page set 2.
Various printer control languages allow for identification of common page print data by the use of particular print function commands. A commonly used printer control language, PCL 5, permits common page print data to be identified by the use of the Macro 11 "Create Bitmap of Macro" command. When this command is used, the common page print data is rasterized and stored into printer memory. Thereafter the rasterized version of the common page print data may be combined with unique page print data and printed by use of the Macro 4 "Enable Macro For Overlay" command. These commands are fully described in the PCL Implementor's Guide, Version 6.0, May 1, 1995, pp. 18-8 to 18-10, inclusive. Those pages are incorporated herein by reference as if set out in full. Another commonly used printer control language, POSTSCRIPT, has somewhat similar capability by the use of the "Copypage" command. This command causes the current rasterized page (e.g., a rasterized version of the common page print data) to be combined with the next page (e.g., unique page print data) in the data stream. This command is described in the POSTSCRIPT Language Reference Manual, Second edition, pp. 379. This page is incorporated herein by reference as if set out in full.
As printers advance in capability (e.g., the addition of 24 bit color capability) the amount of print data required to represent a page increases. As a result, various data compression techniques are used to reduce the memory requirements (and thereby reducing cost) of these advanced printers. For instance, in U.S. Pat. No. 4,558,302 a well known data compression technique for printers is described. The disclosure of U.S. Pat. No. 4,558,302 is incorporated herein by reference as if set out in full.